home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
fog
/
fog12.doc
next >
Wrap
Text File
|
1993-07-08
|
13KB
|
284 lines
ランダム・ドット描画プログラム
FOG V1.2
programmed by TAR
ドキュメント・ファイル
■始めに
というわけで私TARが作ってみたランダム・ドット描画プログラムが"FOG"です.
実は以前に同様のもの(V1.0)をNIFTY Serveにアップロードしているのですが,それに
少々手を加え加えてV1.2としました.変更点も含め,どんなソフトなのかを紹介します.
・TOWNS専用のランダム・ドット描画ソフト
・画像のデータはテキスト・エディタ(OSのテキスト編集など)で作成できる
・ハードコピーが取れるように白黒モードが付いている
・画面上の画像の色は青・赤・緑・を指定できる
といったところです.
※注:このソフトはTOWNS OS V2.1用です.V1.1では表示はされますが,ハングします
(マウスを全く受け付けない).
■ファイル
|FOG12 .EXP FOG V1.2本体
|* .FOG FOG V1.2用データ
|README .DOC 解説ファイル(このファイル)
■使い方
いたって簡単です.まずは"FOG12.EXP"を,「TOWNS OS,アプリケーション,ディレクト
リ移動付き」としてアイテム登録をしてください.登録ができたらそのアイテムをク
リックして実行すると"FOG V1.2"が起動されます.
起動すると画面の真ん中にファイルセレクタが表示されるので,目的のファイルを
選択すると(操作については別に詳しく説明します),読み込み,描画が行われます.
画面にあるボタンは3つで,[EXIT][FILE][!]です.選択する場合はボタンの上で左ク
リックをしてください.ボタンはそれぞれ次のような機能を持っています.
[EXIT] FOGを終了しTMENUにもどります
[FILE] ファイルセレクタを表示します.
[!] 余計な表示を消し,画面を白黒にします.TMENUの「設定」で「モノクロ・ハードコ
ピー」を設定している場合,このボタンを押して画面を白黒にしてからコピー
キーを押すと,綺麗なハードコピーが得られます.普通の画面に戻るにはマウ
スを右クリックします.
さて,起動方法はもう一つあります.それには"TMENU.IF2"に次のような行を加えま
す.
|FOG,00,20,FOG.EXP
~~~~~~~
↑この部分は自分のシステムに合わせて「フルパス」で指定する
こうしておけば,データファイルをクリックするだけで,起動後に画像データを読み
込んで表示します.
又,サンプルのデータは"SAMPLE.FOG"の他にもいくつか入っていますので見てみて
くださいね.
■FOGの見方
文章では非常に表現しにくいのですが,どの様にして見たら立体に見えるかを説明
します.
そもそも立体視の方法には「平行法」と「交差法」があり,それぞれ見方がまったく逆
になります.また,平行法様に作った画像を交差法で見ると,凹凸の関係が完全に引っ
繰り返ってしまいます.尚,このFOG V1.2は平行法で見ることを前提に作ってあるため
,この本文中で「高さが○○」等と書いてあるのは全て平行法で見た場合の記述です.そ
れらは交差法で見ると逆に窪んで見えます.
因みに,付け足しておくならば,同じ画像を平行法と交差法で見比べると,平行法で
見た場合の方がの方が大きく感じられます.
□平行法
画面のランダム・ドットの上には,小さい黒丸が出ていると思いますが,これは立体
視をしやすくするための「マーカ」です.平行法では,左目で左のマーカを,右目で右の
マーカを見るようにします.つまり,画面ではなく,「画面の向こう側」に焦点を合わせ
るようにするのです.いわゆる「遠い目」をするわけですね.そうして,マーカの像がダ
ブって見え,3つになったら目を下にずらしてください.ランダム・ドットの画像の中に
何かが浮かんで見えるはずです.
※人の顔を思い切り近くに寄ってみると「目が3つに見える」という感覚は分かると思
いますが,それと全く同じです.
□交差法
交差法では上と全く逆に左のマーカを右目で,右のマーカを左目で見るようにしま
す.寄り目で画面を見るわけです.この方法では画面と目の間に指を立てるなどして見
ると,簡単にできるようです.この場合もマーカの像がダブって見え,3つになったら視
線を下にしてみてください.ランダムドットの中に何かが見えます.
■データ作り
要は,高さのデータを用意してやれば良いのですが,その他にもいくつかのオプショ
ンがあります.赤い色で画面中央に高さ5の四角形の台を作りたいとして,データを作
成してみましょう.データは次のようになります.
--------------------------------------
fog
title STAND
cell 8 8
shift 10
density 3
color 1
map 20 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0
0 0 0 0 0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0
0 0 0 0 0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0
0 0 0 0 0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0
0 0 0 0 0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0
0 0 0 0 0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0
0 0 0 0 0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0
0 0 0 0 0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--------------------------------------
データは次のような意味を持っています.
[fog] FOG V1.2のデータの頭には必ず入れてください.FOG V1.0のデータを使う
ときはこれを書き加える必要があります.
[title] 図形のタイトルを指定します.このタイトルは図形の左上に表示され,デフ
ォルトは無字です.
[cell] 1つの区画の大きさをドット単位で設定します.大体(8 8)位が見やすいで
しょう.デフォルトは(8 8)です.
[shift] 左右の画像のずらし量を指定します.この指定はドット単位ではなく区画
単位です.ですから,後述のmapの初めの値よりも大きくすれば,左右の図形
は完全に分離します.デフォルトは15です.
[density] ランダム・ドットの密度を指定します.この数を大きくすると密度は低くな
ります.デフォルトは2(密度50%)です.
[color] 画面に描画するときの色を指定します.0で青,1で赤,2で緑です.デフォル
トは0(青)です.
[map] 図形データの区画の大きさを指定します.更にこれに続いて,図形データ
(高さのデータ.上で示してある数字の羅列)を書いていきます.
コメントは,中途半端なところ(データの間等)でなければ,入れても大丈夫です.又,
title,cell,shift,density,colorについては省略が可能です(デフォルト値が設定さ
れる).
たいして難しいものではないので,皆さんも作ってみてください.もやもやした中か
ら図形が浮かび上がってくるのは,なんとも不思議なものです.
※上のデータは「平行法で見る」ということを前提に書いています.交差法の場合,凸部
に当たるデータ中の"5"は全て-5になります.
■データの簡単な作り方
実際に高さのデータを作る場合,どうしても80×25文字のテキスト画面ではやりに
くくなってしまいます(特に,高さが1桁と2桁の値が混在している場合).そこで,次の
ような方法を取ってみて下さい.
まず,何かしらの「文字」「記号」などを使って,分かりやすい絵を描きます.ここでは
「FM」という文字のデータを作ってみましょう.
--------------------------------------
..........................
..........................
..@@@@@@@@..@@@......@@@..
..@@@@@@@@..@@@......@@@..
..@@........@@@@....@@@@..
..@@........@@@@....@@@@..
..@@@@@@....@@.@@..@@.@@..
..@@@@@@....@@.@@..@@.@@..
..@@........@@..@@@@..@@..
..@@........@@..@@@@..@@..
..@@........@@...@@...@@..
..@@........@@...@@...@@..
..........................
..........................
--------------------------------------
次にこれを置換します.例えば,「.」で描かれているベースの部分の高さを0として,
「@」で描かれている文字の部分を高さ8にしましょう.気を付けるのはただ置き換える
のではなく「置換後のデータの前にスペースを入れるようにする」ということです.つ
まり「.」を「 0」に,「@」を「 8」にするということです.
--------------------------------------
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 8 8 8 8 8 8 8 0 0 8 8 8 0 0 0 0 0 0 8 8 8 0 0
0 0 8 8 8 8 8 8 8 8 0 0 8 8 8 0 0 0 0 0 0 8 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 8 8 0 0 0 0 8 8 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 8 8 0 0 0 0 8 8 8 8 0 0
0 0 8 8 8 8 8 8 0 0 0 0 8 8 0 8 8 0 0 8 8 0 8 8 0 0
0 0 8 8 8 8 8 8 0 0 0 0 8 8 0 8 8 0 0 8 8 0 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 8 8 8 8 0 0 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 8 8 8 8 0 0 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 0 8 8 0 0 0 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 0 8 8 0 0 0 8 8 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--------------------------------------
図の大きさも始めに描いた絵を見れば簡単に数えることができますね.この場合だ
ったら26×14ですから,この高さデータの直前に次の1行を加えます.
--------------------------------------
map 26 14
--------------------------------------
ほかのパラメータ(cellやdensity)は省略が可能ですから,単純にはこのデータの頭
にfogというキーワードを付けただけで,ランダム・ドットを描かせるデータが完成し
てしまいます.
--------------------------------------
fog
map 26 14
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 8 8 8 8 8 8 8 0 0 8 8 8 0 0 0 0 0 0 8 8 8 0 0
0 0 8 8 8 8 8 8 8 8 0 0 8 8 8 0 0 0 0 0 0 8 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 8 8 0 0 0 0 8 8 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 8 8 0 0 0 0 8 8 8 8 0 0
0 0 8 8 8 8 8 8 0 0 0 0 8 8 0 8 8 0 0 8 8 0 8 8 0 0
0 0 8 8 8 8 8 8 0 0 0 0 8 8 0 8 8 0 0 8 8 0 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 8 8 8 8 0 0 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 8 8 8 8 0 0 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 0 8 8 0 0 0 8 8 0 0
0 0 8 8 0 0 0 0 0 0 0 0 8 8 0 0 0 8 8 0 0 0 8 8 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--------------------------------------
いかがですか.直接数値を書き込んでいくよりも簡単でしょう.サンプルがいくつか
あるので,それらも参考にして,皆さんも色々とデータを作ってみてください.
■データ作成上の注意
高さデータの左右2区画分程度にはマイナスのデータは与えないでください.左側す
ぐの所からマイナスのデータを与える(交差法で凸部となる)と,画面に黒い筋が現わ
れます.これはバグではなく仕様だと思ってください.このソフトは平行法で見ること
を前提に作ってあるからです.
■ファイルセレクタに付いて
このソフトに付いているファイルセレクタは,汎用性の有るものとしてFOGとは全く
別に制作したもので,FOG V1.1をほとんど改造することなく付け加えています.
ここではこのファイルセレクタの使用法を説明します.
[呼び出し時の探索ドライブ,ディレクトリ]
1)プログラムが起動してから初めて呼ばれた場合
カレントドライブのカレントディレクトリを探索.
2)2度目以降
以前にセレクタを閉じた(選択,キャンセルなどで終了した)ドライブ及びディレク
トリを探索.但し,そのドライブが使用不可能な場合には,1)と同様.
[ドライブの変更]
マウスカーソルはセレクタの中のファイル表示ウィンドウ内でしか動けません.こ
のウィンドウを飛び出して左に行こうとしたとき,ドライブは一つ前のドライブに変
更されます.逆に右に行こうとしたときは次のドライブに変更されます.
変更された直後はファイルは表示されません.マウスを左クリックする事で,指定の
ドライブにあるファイルが表示されます.
[ファイルの選択]
ファイルの数が多く,ファイル選択ウィンドウ内に表示できない場合,探索されたフ
ァイルの内の10個だけが表示されます.他のファイルを参照したい場合には,ウィンド
ウを越えてマウスカーソルを上下に移動させようとすると,ファイル一覧が上,あるい
は下にスクロールします.
目的のファイルが見つかった場合,マウスカーソルをその上に持っていきクリック
するとそのファイルが反転表示されます.それでよい場合にはもう一度クリックする
と,そのファイルのフルパス名が引き数path_nameに書き込まれ,ファイルセレクタは
終了し,関数としての戻り値は1を取ります.それ以外の動作を行う(カーソルを移動さ
せるなど)と,反転表示は解除され,選択画面に戻ります.
選択したファイルがディレクトリの場合,ファイルと同様に反転表示されます.もう
一度クリックすることによって,そのディレクトリに移動することができます.
[ファイルの入力]
ファイルの選択画面では,キーボードの入力も受け付けています.但し,受け付ける
文字はASCII文字のみです.間違えた場合は後退キーのみ有効です.決定したらリター
ンキーを押して下さい.
ファイル名をキーボードから入力する場合,ファイル選択ウィンドウで表示されて
いるファイルの存在するディレクトリ名に,入力したファイル名が加えられてpath_na
meに返されます.関数の戻り値は2となります.
マウスで選択を行った場合,キーで入力したものは無効になります.
[エラー表示]
ドライブの準備ができていない,ファイルが存在しない場合には,画面にエラーが表
示されますが,マウスを操作することで元に戻ります.
[キャンセル]
どの画面でもマウスを右クリックすることで,キャンセル終了することができます.
この場合,path_nameの内容は変更されず,関数の戻り値は0となります.
[ドラッグ]
どの画面でも,左ボタンを押しながらマウスを移動させることで,ファイルセレクタ
の表示位置を移動させることができます.
[注意]
完全なエラー処理は行っておりません.ファイルの選択中にディスクはディスクを
抜いたりしないでください.
■終わりに
そのうちたぶん,もっと色々な付加機能が付くでしょう.
NIFTY:HFD01305 TAR